unit eccolourscheme;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, Graphics, ecstringiser;

type

  { TEcColourScheme }

  TEcColourScheme = class
    public
      function GetBgColour: TColor; virtual;
      function GetTextColour(Index: TEcColour): TColor; virtual;
      function GetSelBgColour: TColor; virtual;
      function GetSelTextColour(Index: TEcColour): TColor; virtual;

      property BgColour: TColor read GetBgColour;
      property TextColour[Index: TEcColour]: TColor read GetTextColour;
  end;

  { TEcLightColourScheme }

  TEcLightColourScheme = class(TEcColourScheme)
    public
      function GetBgColour: TColor; override;
      function GetTextColour(Index: TEcColour): TColor; override;
  end;

implementation

{ TEcLightColourScheme }

function TEcLightColourScheme.GetBgColour: TColor;
begin
  GetBgColour := clWhite;
end;

function TEcLightColourScheme.GetTextColour(Index: TEcColour): TColor;
begin
  case Index of
    ecDefault: GetTextColour := clBlack;
    ecString: GetTextColour := $940714;
    ecCode, ecFaded: GetTextColour := clGray;
    ecInvisible: GetTextColour := clWhite;
    ecMessage: GetTextColour := $8b0b4e;
    ecProgression: GetTextColour := $0b09ff;
    ecFlow: GetTextColour := $fd0b3a;
    ecComment: GetTextColour := $2f8a0c;
    ecParty, ecActor:
      GetTextColour := $3098ff;
    ecMove, ecChar:
      GetTextColour := $0d0882;
    ecPic: GetTextColour := $8a1184;
    ecWait: GetTextColour := $4c23dc;
    ecScreen: GetTextColour := $0c8381;
    ecAudioVideo: GetTextColour := $828018;
    ecScene: GetTextColour := $fd9430;
    ecSystem: GetTextColour := $ff19ff;
    ecMap: GetTextColour := $981aff;
    ecBattle: GetTextColour := $d50997;
    ecAdvanced: GetTextColour := $88044d;
  else
    GetTextColour := clBlack;
  end;
end;

{ TEcColourScheme }

function TEcColourScheme.GetBgColour: TColor;
begin
  GetBgColour := clWindow
end;

function TEcColourScheme.GetTextColour(Index: TEcColour): TColor;
begin
  GetTextColour := clWindowText
end;

function TEcColourScheme.GetSelBgColour: TColor;
begin
  GetSelBgColour := clHighlight
end;

function TEcColourScheme.GetSelTextColour(Index: TEcColour): TColor;
begin
  GetSelTextColour := clHighlightText
end;

end.

